Videoconferencing is a very powerful communication mode that allows people to be in remote locations and be able to see and speak to each other in real time. Typically, a video conference session is established by a client device (located at an endpoint where a participant will join) establishing a session with a conference server. Establishing a session between the client and the conference server can occur using a number of different protocols including, the Session Description Protocol (SDP), Session InitiationProtocol (SIP), and Real-Time Transport Protocol (RTP).
Once a session is established between the client and the conference server, video and audio is transmitted from each of the clients involved in the conference to the conference server. The conference server will then combine the video streams and transmit them to the clients for output at the client. The server typically controls the resolution of the video received by the client and changes the resolution based on bandwidth constraints, without any input from the client or consideration of the user experience on the client.
Although specific problems and issues have been identified in this background section, the embodiments described herein are not limited to solving these particular problems or issues. The embodiments may be applied to solve problems not described in this background section.